﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.ModelBinding;
using System.Web.UI;
using System.Web.UI.WebControls;
using Box.BL;
using Box.Entities;
using Microsoft.Practices.Unity;

namespace Box.Cliente.Logistica.Nota_Pedidos
{
    public partial class frmNotaPedido : System.Web.UI.Page
    {
        [Dependency]
        public INotaPedidoBL notapedidoBL { get; set; }
      
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                var accion = Request.QueryString["accion"];
                var id = Request.QueryString["id"];

                if (accion == null)
                {
                    Response.Redirect("frmListNotaPedido.aspx");
                }
                else if (accion == "nuevo")
                {
                    UpdatePanel1.Visible = false;
                }

                else if (accion == "ver")
                {

                    UpdatePanel1.Visible = true;
                    var identificador = int.Parse(id);
                    var nota = notapedidoBL.GetFromNotaPEdidoById(identificador);
                    fuArchivo.Visible = false;
                    fuArchivo.Enabled = false;
                    btnDocumento.Visible = false;
                    txtId.Text = nota.Id.ToString();
                    txtNroCompra.Text = nota.CodigoNotaPedido;
                    
                    txtId.ReadOnly = true;
                    btnDocumento.Visible = false;
                    upd1.Visible = false;
                    txtComentario.Text = nota.ComentarioPedido;
                    txtComentario.ReadOnly = true;
                    txtNroCompra.ReadOnly = true;
                    btnDocumento.Enabled = true;
                    btnGuardar.Enabled = false;
                    txtComentario.Width = 300;
                    txtComentario.Height = 350;
                }
                else if (accion == "editar")
                {
                    UpdatePanel1.Visible = true;
                    var identificador = int.Parse(id);
                    var nota = notapedidoBL.GetFromNotaPEdidoById(identificador);
                    txtId.Text = nota.Id.ToString();
                    txtNroCompra.Text = nota.CodigoNotaPedido;
                    btnDocumento.Visible = true;
                    txtComentario.Text = nota.ComentarioPedido;
                    btnDocumento.Visible = false;
                  
                }
                else if (accion == "Eliminar")
                {
                    var idcc = Int32.Parse(id.ToString());
                    notapedidoBL.RemoveNotaPedido(idcc);
                    Response.Redirect("frmListNotaPedido.aspx");
                }
            }
        }

        protected void btnGuardar_Click(object sender, EventArgs e)
        {
            var accion = Request.QueryString["accion"];

            var nota = new NotaPedido()
            {
                CodigoNotaPedido = txtNroCompra.Text,
                FechaPedido = DateTime.Now,
                EstadoAlmacen = "En proceso",
                ComentarioPedido = txtComentario.Text,
                
                EstadoConfeccion = null,
                Total = 0
            };

           if (fuArchivo.HasFile) {
             //  fuArchivo.SaveAs("E:/BoxSport/BoxCorporacion/"+"BoxCorporacion/Box.Cliente/Images/" + fuArchivo.FileName);
               fuArchivo.SaveAs("C:/inetpub/wwwroot/boxCorporacion/Images/" + fuArchivo.FileName);
                var docNombre = fuArchivo.FileName; ;
                nota.DocumentoPedido = docNombre;
            }

            
            if (accion == "nuevo")
            {
                if (txtNroCompra.Text != string.Empty )
                {
                    UpdatePanel1.Visible = false;
                    nota.ComentarioPedido = txtComentario.Text;
                    
                    //nota.EstadoAlmacen = "Confeccion";
                    //nota.EstadoConfeccion = "Confección";
                    notapedidoBL.AddNotaPEdido(nota);
                    Response.Redirect("frmListNotaPedido.aspx");
                }

            }
            else if (accion == "editar")
            {
                nota.Id = int.Parse(txtId.Text);

                var documentoDb = nota.DocumentoPedido;

                if (documentoDb != null)
                {
                    var docNomeditado = fuArchivo.FileName;
                    if (fuArchivo.HasFile)
                    {
                      //  fuArchivo.SaveAs("E:/BoxSport/BoxCorporacion/BoxCorporacion/Box.Cliente/Images/" + fuArchivo.FileName);
                        fuArchivo.SaveAs("C:/inetpub/wwwroot/boxCorporacion/Images/" + fuArchivo.FileName);
                        nota.DocumentoPedido = docNomeditado;

                    }
                    else if (documentoDb != docNomeditado) {

                        nota.DocumentoPedido = docNomeditado;
                    
                    }
                    else if (documentoDb == docNomeditado){
                        nota.DocumentoPedido = documentoDb;
                    
                    }

                }
                         
                    notapedidoBL.UpdateNotaPedido(nota);
                    Response.Redirect("frmListNotaPedido.aspx");

            }
        }

        public NotaPedido GetDoc()
        {
            var id = Request.QueryString["id"];

            var identificador = int.Parse(id);

                return notapedidoBL.GetFromNotaPEdidoById(identificador);
        }

        protected void btnCancelar_Click(object sender, EventArgs e)
        {
            Response.Redirect("frmListNotaPedido.aspx");
           
        }

    }
 }